Go 使用Dockerfile构建项目 mod 报错处理 |
您所在的位置:网站首页 › update download did not › Go 使用Dockerfile构建项目 mod 报错处理 |
1.情景
正在使用Dockerfile构建Go项目镜像的时候,遭遇到了executor failed running [/bin/sh -c go mod tidy]: exit code: 2以及ERROR [internal] load metadata for docker.io/library/golang:1.19报错,经过一番折腾,终于解决,记录一下! 2.一开始的Dockerfile FROM golang:alpine as builder WORKDIR /go/web-api # 为我们的镜像设置必要的环境变量 ENV GO111MODULE=on ENV CGO_ENABLED=0 ENV GOPROXY=https://goproxy.cn,direct ENV GOOS=linux ENV GOARCH=amd64 COPY . . RUN go mod tidy RUN go build -o server . 3.解决方案 3.1第一个报错executor failed running [/bin/sh -c go mod tidy]: exit code: 2报错内容 ------ > [builder 4/5] RUN go mod tidy: #8 0.275 go: unknown subcommand "mod" #8 0.275 Run 'go help' for usage. ------按照提示信息显示,找不到命令.怀疑是golang:alpine低于当前项目的Go版本(当前项目1.19).于是尝试更换成golang:1.19-alpine3.15,这次没有mod的报错了,但是有新的报错. 3.2第二个报错ERROR [internal] load metadata for docker.io/library/golang:1.19 ------ > [internal] load metadata for docker.io/library/golang:1.19-alpine3.15: ------ failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests 1.19-alpine3.15]: 400 Bad Request好像是镜像问题,随即查阅一番资料,得到结论,原来是Docker Desktop的设置问题,需要将setting->Docker Engine的json配置文件中的 "features": { "buildkit": true },修改为false即可. 4.修改后结果修改后重新运行docker build -t xxx/xxx .命令成功生成镜像.希望能帮助到有相同问题的小伙伴^_^ |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |